package com.jprocms.module.cms.dal.mysql.content;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jpro.framework.mybatis.core.mapper.BaseMapperX;
import com.jpro.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.jprocms.module.cms.controller.admin.content.relatevo.ContentRelateReqVO;
import com.jprocms.module.cms.dal.dataobject.content.ContentRelateDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.List;

/**
 * 相关内容 Mapper
 *
 * @author jprocms
 */
@Mapper
public interface ContentRelateMapper extends BaseMapperX<ContentRelateDO> {

    @Override
    ContentRelateDO selectById(Serializable id);

    default List<ContentRelateDO> selectList(ContentRelateReqVO reqVO) {
        return selectList(new LambdaQueryWrapperX<ContentRelateDO>()
                .eqIfPresent(ContentRelateDO::getContentId, reqVO.getContentId())
                .orderBy(true, false, ContentRelateDO::getSort, ContentRelateDO::getId));
    }

    IPage<ContentRelateDO> selectPage(@Param("params") ContentRelateReqVO reqVO, IPage<ContentRelateDO> page);

//    default PageResult<ContentRelateDO> selectPage(ContentRelatePageReqVO reqVO) {
//        LambdaQueryWrapperX<ContentRelateDO> queryWrapperX = new LambdaQueryWrapperX<ContentRelateDO>()
//                .eqIfPresent(ContentRelateDO::getContentId, reqVO.getContentId())
//                .eqIfPresent(ContentRelateDO::getRelateId, reqVO.getRelateId())
//                .orderByDesc(ContentRelateDO::getId);
//        return selectPage(reqVO, queryWrapperX);
//    }

}
